var ws = require("nodejs-websocket");
console.log("开始建立连接...")
// 在线人数
var perponArray = [];
var arr = [];
var game1 = null,game2 = null , game1Ready = false , game2Ready = false;
var server = ws.createServer(function(conn){
    conn.on("text", function (str) {
        var data = JSON.parse(str);
        
        if(data.type == 'link'){ // 有人连接进入房间
            conn.name = data.name;
            conn.id = data.id;
            linesuccess(data);
            onlinenum();
            talk({'name':data.name, 'text':'上线'});
            return;
        }else if(data.type == 'talk'){ // 发消息
            talk(data);
            return;
        }
        
        console.log("收到的信息为:"+str)

        server.connections.forEach(function(conn1) { // 多人聊天室
            conn1.sendText(str);
        })
    })
    conn.on("close", function (code, reason) {
        console.log("关闭连接")
        outline({'id':conn.id, 'name':conn.name});
        onlinenum();
        talk({'name':conn.name, 'text':'退出房间'});
    });
    conn.on("error", function (code, reason) {
        console.log("异常关闭")
    });
}).listen(8001)
console.log("WebSocket建立完毕")

//在线人数
function onlinenum(){
    server.connections.forEach(function(ar) { // 多人聊天室
        ar.sendText(JSON.stringify({
            'type':'onlinenumber',
            'total': perponArray.length
        }));
    });
}
// 连接成功
function linesuccess(data){
    console.log(data.id + ' 进入房间');
    perponArray.push(data.id);
    console.log(perponArray);
    server.connections.forEach(function(ar) { // 多人聊天室
        ar.sendText(JSON.stringify({
            'type':'success',
            'text': data.name + '进入房间'
        }));
    });
}

// 推出房间
function outline(data){
    console.log('退出房间' + data.id)
    var index = perponArray.indexOf(data.id);
    if(index > -1) perponArray.splice(index,1);
    // perponArray.remove(data.id);
    server.connections.forEach(function(ar) { // 多人聊天室
        ar.sendText(JSON.stringify({
            'type':'outline',
            'text': data.name + '退出房间'
        }));
    });

}

// 交流
function talk(data){
    server.connections.forEach(function(ar) { // 多人聊天室
        ar.sendText(JSON.stringify({
            'type':'talk',
            'text': data.name + ':'+data.text
        }));
    });
}




